//
//  GDMMainTabBar.swift
//  SinaWeibo
//
//  Created by mac on 15/11/26.
//  Copyright © 2015年 mac. All rights reserved.
//

import UIKit

class GDMMainTabBar: UITabBar {
    
//   手写代码重新设置自动布局，只要是写了这个方法系统就会默认是手写代码
    override init(frame : CGRect){
        
        super.init(frame: frame)
        
//        重写设置每一个tabBar的frame
        setUptabBar()
        
    }

//    只要是写了上面的那个方法，系统就会默认的让你写上这个方法，这个方法的意思就是你实现了上面的那个方法，要是在使用这个方法他就会给你抱一个致命的错误，所以要是即加载手码有加载XIB和SB就把那一行注释一下就可以了
    required init?(coder aDecoder: NSCoder) {
//        fatalError("init(coder:) has not been implemented")
        super.init(coder: aDecoder)
        
        setUptabBar()
    }
    
   private func setUptabBar(){
        
//        添加子视图
    addSubview(composeBtn)
    
    }
    
   
//    添加这个按钮的时候只需要加载一次，所以直接使用这个懒加载
    lazy var composeBtn : UIButton = UIButton(imageName: "tabbar_compose_icon_add", backImage: "tabbar_compose_button")
    
//    {
//       
//        let btn = UIButton()
//        
////设置这个按钮的基础属性
//        btn.setImage(UIImage(named: "tabbar_compose_icon_add"), forState: .Normal)
//        
//        btn.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), forState: .Selected)
//        
//        btn.setBackgroundImage(UIImage(named: "tabbar_compose_button"), forState: .Normal)
//        
//        btn.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), forState: .Selected)
//        
//        return btn
//    }()

//    设置整个tabBar的自动布局
   override func layoutSubviews() {
    
    super.layoutSubviews()
    
    let W = screenW / 5
    
    let H = self.bounds.height
    
    let rect = CGRect(x: 0, y: 0, width: W, height: H)
    
//    定义一个索引
    var index : CGFloat = 0
    
//    遍历每一个子控件
    for v in subviews {
        
        if v.isKindOfClass(NSClassFromString("UITabBarButton")!){
        
//            可以在这里更改这个图片的位置
        v.frame = CGRectOffset(rect, W * index, 0)
       
        index += (index == 1 ? 2 : 1)
        
        }
        
    }
    
//    设置自定义的按钮的大小
    composeBtn.frame = CGRectOffset(rect, 2 * W, 0)
    
    }
    
}
